/**
 * 令a表示1，z表示26，则xxx可以表示一个三位数，
 * 其数位和就是每个字母所表示数之和
 * 现在给定数位和，问最小的是多少
 * 反过来贪心即可，在可能的情况下，低位越大越好
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

using llt = long long;
using vi = vector<int>;



void work(){
    int n; cin >> n;
    string s;
    if(n > 26 + 26){
        int a = n - 26 - 26;
        s += (char)(a + 'a' - 1);
        s += "zz";
    }else{
        s += 'a';
        n -= 1;
        if(n > 26){
            int a = n - 26;
            s += (char)(a + 'a' - 1);
            s += 'z';
        }else{
            s += 'a';
            n -= 1;
            s += (char)(n + 'a' - 1);
        }
    }

    cout << s << "\n";
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int nofkase = 1;
	cin >> nofkase;
	while(nofkase--){	
        work();
	}
    return 0;
}